package com.beagle.njddapp.base;

import com.beagle.njddapp.bean.StringBean;
import com.beagle.njddapp.bean.owner.DIrverOrderBean;
import com.beagle.njddapp.bean.MessageBean;
import com.beagle.njddapp.bean.owner.JIaYouZhanBean;
import com.beagle.njddapp.bean.owner.JiaYouCheBean;
import com.beagle.njddapp.bean.owner.NjAndOilBean;
import com.beagle.njddapp.bean.owner.NjBean;
import com.beagle.njddapp.bean.owner.OilOrderBean;
import com.beagle.njddapp.bean.ZdBean;
import com.beagle.njddapp.net.BaseHttpResponse;
import com.beagle.njddapp.net.BaseOilHttpListResponse;
import com.beagle.njddapp.net.BaseOilHttpResponse;
import com.beagle.njddapp.net.BaseStringResponseBean;
import com.beagle.njddapp.net.BaseZdHttpListResponse;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;

/**
 * @author hxx
 * @date 2021-03-16 11:06
 */
public interface NjOwnerApiService {


    /**
     * 农机主-获取农机列表  农机状态 1：运行中 2： 静止中 。为空时默认查询所有
     * @return
     */
    @POST("app/api/deviceMgt/queryMeshBaseList/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<NjBean>> getDeviceList(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);



    /**
     * 农机主-获取农机列表  农机状态 1：运行中 2： 静止中 。为空时默认查询所有
     * @return
     */
    @POST("app/api/farmer/fuelOrders/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<NjAndOilBean>> getPjList(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);


    /**
     * 农机主-获取农机驾驶员列表
     * @return
     */
    @POST("app/api/orderMgt/queryFindDriverOrderList/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<DIrverOrderBean>> queryFindDriverOrderList(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);



    /**
     * 农机主-获取加油站
     * @return
     */
    @POST("app/api/deviceMgt/queryFillingStationList/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<JIaYouZhanBean>> queryFillingStationList(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);



    /**
     * 农机主-获取加油车
     * @return
     */
    @POST("app/api/deviceMgt/queryFillingCarList/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<JiaYouCheBean>> queryFillingCarList(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);



    /**
     * 农机主-加油订单
     * @return
     */
    @POST("app/api/farmer/fuelOrders/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<OilOrderBean>> fuelOrders(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo,@Body RequestBody body);


    /**
     * 农机主-加油订单
     * @return
     */
    @POST("app/api/farmer/fuelOrders/createOrder")
    Observable<BaseStringResponseBean> createOrder(@Body RequestBody body);

    /**
     * 查询临牌号码
     * @return
     */
    @GET("app/api/deviceMgt/queryMeshNum")
    Observable<StringBean> queryMeshNum();




    /**
     * 农机主-加油订单详情
     * @return
     */
    @POST("app/api/farmer/fuelOrders/detail/{orderId}")
    Observable<BaseOilHttpResponse<OilOrderBean>> oilOrderDeyail(@Path("orderId") String orderId,@Body RequestBody body);

    /**
     * 农机主-取消订单
     * @return
     */
    @POST("app/api/farmer/fuelOrders/cancelOrder/{orderId}")
    Observable<BaseOilHttpResponse> cancelOrder(@Path("orderId") String orderId,@Body RequestBody body);


    /**
     * 农机主-发起线下支付
     * @return
     */
    @POST("app/api/farmer/fuelOrders/startOrderPayment/{orderId}")
    Observable<BaseOilHttpResponse> startOrderPayment(@Path("orderId") String orderId,@Body RequestBody body);



//    /**
//     * 农机主-加油车信息查询
//     * @return
//     */
//    @POST("app/api/deviceMgt/queryMeshStateList/{pageSize}/{pageNo}")
//    Observable<BaseOilHttpListResponse> queryMeshStateList(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);
//


    /**
     * 农机主-添加农机
     * @return
     */
    @POST("app/api/deviceMgt/addMeshBase")
    Observable<BaseOilHttpListResponse> addMeshBase(@Body RequestBody body);



    /**
     * 农机主-添加农机临牌
     * @return
     */
    @POST("app/api/deviceMgt/addMeshBaseTemp")
    Observable<BaseOilHttpListResponse> addMeshBaseTemp(@Body RequestBody body);



    /**
     * 农机主-添加农机
     * @return
     */
    @POST("app/api/deviceMgt/updateMeshBase")
    Observable<BaseOilHttpResponse> updateMeshBase(@Body RequestBody body);



    /**
     * 农机主-添加农机
     * @return
     */
    @POST("app/api/deviceMgt/updateMeshBaseTemp")
    Observable<BaseOilHttpResponse> updateMeshBaseTemp(@Body RequestBody body);



    /**
     * 字典
     * @return
     */
    @POST("app/api/common/queryDictList")
    Observable<BaseZdHttpListResponse<ZdBean>> queryDictList(@Body RequestBody body);




    /**
     * 农机主-添加农机驾驶员
     * @return
     */
    @POST("app/api/orderMgt/addFindDriverOrder")
    Observable<BaseOilHttpResponse> addFindDriverOrder(@Body RequestBody body);



    /**
     * 农机主-添加农机驾驶员
     * @return
     */
    @POST("app/api/orderMgt/updateFindDriverOrder")
    Observable<BaseOilHttpResponse> updateFindDriverOrder(@Body RequestBody body);


    /**
     * 农机主-删除设备
     * @return
     */
    @POST("app/api/deviceMgt/deleteMeshBase")
    Observable<BaseOilHttpResponse> deleteMeshBase(@Body RequestBody body);




    /**
     * 农机主-消息列表
     * @return
     */
    @POST("app/api/personal/message/{pageSize}/{pageNo}")
    Observable<BaseOilHttpListResponse<MessageBean>> message(@Path("pageSize") String pageSize, @Path("pageNo") String pageNo, @Body RequestBody body);


    /**
     * 农机主-读消息
     * @return
     */
    @POST("app/api/personal/message/read")
    Observable<BaseOilHttpResponse> read(@Body RequestBody body);


    /**
     * 农机主-消息处理
     * @return
     */
    @POST("app/api/personal/message/deal")
    Observable<BaseOilHttpResponse> dealMessage(@Body RequestBody body);


    /**
     * 农机主-加油订单
     * @return
     */
    @POST("app/api/farmer/fuelOrders/voteOrder/{orderId}")
    Observable<BaseOilHttpResponse> voteOrder(@Path("orderId") String orderId, @Body RequestBody body);


}
